import http from "@/api";
import { ReqPage, ResPage } from "@/api/interface";

const baseUrl: string = "/sys/sys_log";

export interface SysLogPageParam extends ReqPage {
  // 日志名称
  logName?: string;
  // 是否执行成功
  succeed?: boolean;
}

export interface SysLogPageResult {
  // 日志名称
  logName: string;
  // 请求ip
  ip: string;
  // 请求url
  url: string;
  // 请求方法
  method: string;
  // 执行方法名称
  methodName: string;
  // 是否执行成功
  succeed: boolean;
  // 错误信息
  error: string;
  // 请求参数
  paramsJson: string;
  // 执行结果
  resultJson: string;
  // 执行耗时(ms)
  duration: number;
  // 创建时间
  createTime: string;
}

export const getSysLogPage = (param: SysLogPageParam) => {
  return http.get<ResPage<SysLogPageResult>>(baseUrl + `/page`, param);
};

export interface SysLogInfoResult {
  id: string;
  // 日志名称
  logName: string;
  // 请求ip
  ip: string;
  // 请求url
  url: string;
  // 请求方法
  method: string;
  // 执行方法名称
  methodName: string;
  // 是否执行成功
  succeed: boolean;
  // 错误信息
  error: string;
  // 请求参数
  paramsJson: string;
  // 执行结果
  resultJson: string;
  // 执行耗时(ms)
  duration: number;
  // 创建时间
  createTime: string;
}

export const getSysLogInfo = (id: string) => {
  return http.get<SysLogInfoResult>(baseUrl + `/info/` + id);
};

export const exportSysLogExcel = (param: SysLogPageParam) => {
  return http.get<any>(baseUrl + `/export/excel`, param, { loading: true, responseType: "blob" });
};
